package io.zw.modules.xinpai.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.zw.common.validator.group.AddGroup;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 
 * 
 * @author zhuwei
 * @email 121203654@qq.com
 * @date 2018-10-10 13:15:04
 */
@TableName("tj_car")
public class CarEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 */

	private Long cId;
	/**
	 * 
	 */
	@TableId(type=IdType.INPUT)
	@NotBlank(message = "车辆IMEI号不能为空",groups = AddGroup.class)
	private String imei;
	/**
	 * 手机卡号
	 */
	private String sim;
	/**
	 * 车牌号
	 */
	@NotBlank(message = "车牌号不能为空",groups = AddGroup.class)
	private String plateNum;
	/**
	 * 客户对车辆名称的内部管理号
	 */
	@NotBlank(message = "车辆内部管理号不能为空",groups = AddGroup.class)
	private String interNum;
	/**
	 * 车辆类型
	 */
	@NotNull(message = "请选择车辆类型",groups = AddGroup.class)
	@Min(value = 1,message = "请选择车辆类型",groups = AddGroup.class)
	private Integer type;
	/**
	 * 出厂日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@NotNull(message = "出厂日期不能为空",groups = AddGroup.class)
	private Date dateManufacture;
	/**
	 * 购买日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@NotNull(message = "购买日期不能为空",groups = AddGroup.class)
	private Date purchasDate;
	/**
	 * 行驶证有效期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@NotNull(message = "行驶证有效期不能为空",groups = AddGroup.class)
	private Date drivingLicense;
	/**
	 * 道路运输证编号
	 */
	@NotBlank(message = "道路运输证编号不能为空",groups = AddGroup.class)
	private String transportLicense;
	/**
	 * 车辆型号
	 */
	private String modelNum;
	/**
	 * 改装厂商
	 */
	private String vender;
	/**
	 * 发动机号
	 */
	@NotBlank(message = "发动机号不能为空",groups = AddGroup.class)
	private String engineOn;
	/**
	 * 车架号
	 */
	@NotBlank(message = "车架号不能为空",groups = AddGroup.class)
	private String chassisOn;
	/**
	 * 底盘类型关联ID
	 */
	@NotNull(message = "请选择底盘类型",groups = AddGroup.class)
	@Min(value = 1,message = "请选择底盘类型",groups = AddGroup.class)
	private Integer underpanType;
	/**
	 * 底盘品牌
	 */
	private String underpan;
	/**
	 * 上装容积
	 */
	private Integer cubage;
	/**
	 * 负责人ID
	 */
	@NotNull(message = "请选择车辆负责人",groups = AddGroup.class)
	@Min(value = 1,message = "请选择车辆负责人",groups = AddGroup.class)
	private Integer leadingId;
	/**
	 * 驾驶员ID
	 */
	@NotNull(message = "请选择车辆驾驶员",groups = AddGroup.class)
	@Min(value = 1,message = "请选择车辆驾驶员",groups = AddGroup.class)
	private Integer driverId;
	/**
	 * 车辆状态
	 */
	private Integer state;
	/**
	 * 燃料种类
	 */
	@NotNull(message = "请选择车辆燃料类型",groups = AddGroup.class)
	@Min(value = 1,message = "请选择车辆燃料类型",groups = AddGroup.class)
	private Integer fuelType;
	/**
	 * 所属项目ID
	 */
	@NotNull(message = "请选择车辆所属项目",groups = AddGroup.class)
	@Min(value = 1,message = "请选择车辆所属项目",groups = AddGroup.class)
	private Integer projectId;
	/**
	 * 地理位置
	 */
	private String location;
	/**
	 * 摄像机ID
	 */
	@NotBlank(message = "录像机ID不能为空",groups = AddGroup.class)
	private String videoId;
	/**
	 * 区域ID列表
	 */
	@TableField(exist=false)
	private List<Long> areaList;

	private Long firmId;
	/**
	 * 设置：
	 */
	public void setCId(Long cId) {
		this.cId = cId;
	}
	/**
	 * 获取：
	 */
	public Long getCId() {
		return cId;
	}
	/**
	 * 设置：
	 */
	public void setImei(String imei) {
		this.imei = imei;
	}
	/**
	 * 获取：
	 */
	public String getImei() {
		return imei;
	}
	/**
	 * 设置：手机卡号
	 */
	public void setSim(String sim) {
		this.sim = sim;
	}
	/**
	 * 获取：手机卡号
	 */
	public String getSim() {
		return sim;
	}
	/**
	 * 设置：车牌号
	 */
	public void setPlateNum(String plateNum) {
		this.plateNum = plateNum;
	}
	/**
	 * 获取：车牌号
	 */
	public String getPlateNum() {
		return plateNum;
	}
	/**
	 * 设置：客户对车辆名称的内部管理号
	 */
	public void setInterNum(String interNum) {
		this.interNum = interNum;
	}
	/**
	 * 获取：客户对车辆名称的内部管理号
	 */
	public String getInterNum() {
		return interNum;
	}
	/**
	 * 设置：车辆类型
	 */
	public void setType(Integer type) {
		this.type = type;
	}
	/**
	 * 获取：车辆类型
	 */
	public Integer getType() {
		return type;
	}
	/**
	 * 设置：出厂日期
	 */
	public void setDateManufacture(Date dateManufacture) {
		this.dateManufacture = dateManufacture;
	}
	/**
	 * 获取：出厂日期
	 */
	public Date getDateManufacture() {
		return dateManufacture;
	}
	/**
	 * 设置：购买日期
	 */
	public void setPurchasDate(Date purchasDate) {
		this.purchasDate = purchasDate;
	}
	/**
	 * 获取：购买日期
	 */
	public Date getPurchasDate() {
		return purchasDate;
	}
	/**
	 * 设置：行驶证有效期
	 */
	public void setDrivingLicense(Date drivingLicense) {
		this.drivingLicense = drivingLicense;
	}
	/**
	 * 获取：行驶证有效期
	 */
	public Date getDrivingLicense() {
		return drivingLicense;
	}
	/**
	 * 设置：道路运输证编号
	 */
	public void setTransportLicense(String transportLicense) {
		this.transportLicense = transportLicense;
	}
	/**
	 * 获取：道路运输证编号
	 */
	public String getTransportLicense() {
		return transportLicense;
	}
	/**
	 * 设置：车辆型号
	 */
	public void setModelNum(String modelNum) {
		this.modelNum = modelNum;
	}
	/**
	 * 获取：车辆型号
	 */
	public String getModelNum() {
		return modelNum;
	}
	/**
	 * 设置：改装厂商
	 */
	public void setVender(String vender) {
		this.vender = vender;
	}
	/**
	 * 获取：改装厂商
	 */
	public String getVender() {
		return vender;
	}
	/**
	 * 设置：发动机号
	 */
	public void setEngineOn(String engineOn) {
		this.engineOn = engineOn;
	}
	/**
	 * 获取：发动机号
	 */
	public String getEngineOn() {
		return engineOn;
	}
	/**
	 * 设置：车架号
	 */
	public void setChassisOn(String chassisOn) {
		this.chassisOn = chassisOn;
	}
	/**
	 * 获取：车架号
	 */
	public String getChassisOn() {
		return chassisOn;
	}
	/**
	 * 设置：底盘类型关联ID
	 */
	public void setUnderpanType(Integer underpanType) {
		this.underpanType = underpanType;
	}
	/**
	 * 获取：底盘类型关联ID
	 */
	public Integer getUnderpanType() {
		return underpanType;
	}
	/**
	 * 设置：底盘品牌
	 */
	public void setUnderpan(String underpan) {
		this.underpan = underpan;
	}
	/**
	 * 获取：底盘品牌
	 */
	public String getUnderpan() {
		return underpan;
	}
	/**
	 * 设置：上装容积
	 */
	public void setCubage(Integer cubage) {
		this.cubage = cubage;
	}
	/**
	 * 获取：上装容积
	 */
	public Integer getCubage() {
		return cubage;
	}
	/**
	 * 设置：负责人ID
	 */
	public void setLeadingId(Integer leadingId) {
		this.leadingId = leadingId;
	}
	/**
	 * 获取：负责人ID
	 */
	public Integer getLeadingId() {
		return leadingId;
	}
	/**
	 * 设置：驾驶员ID
	 */
	public void setDriverId(Integer driverId) {
		this.driverId = driverId;
	}
	/**
	 * 获取：驾驶员ID
	 */
	public Integer getDriverId() {
		return driverId;
	}
	/**
	 * 设置：车辆状态
	 */
	public void setState(Integer state) {
		this.state = state;
	}
	/**
	 * 获取：车辆状态
	 */
	public Integer getState() {
		return state;
	}
	/**
	 * 设置：燃料种类
	 */
	public void setFuelType(Integer fuelType) {
		this.fuelType = fuelType;
	}
	/**
	 * 获取：燃料种类
	 */
	public Integer getFuelType() {
		return fuelType;
	}
	/**
	 * 设置：所属项目ID
	 */
	public void setProjectId(Integer projectId) {
		this.projectId = projectId;
	}
	/**
	 * 获取：所属项目ID
	 */
	public Integer getProjectId() {
		return projectId;
	}

	public List<Long> getAreaList() {
		return areaList;
	}

	public void setAreaList(List<Long> areaList) {
		this.areaList = areaList;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public String getVideoId() {
		return videoId;
	}

	public void setVideoId(String videoId) {
		this.videoId = videoId;
	}

	public Long getFirmId() {
		return firmId;
	}

	public void setFirmId(Long firmId) {
		this.firmId = firmId;
	}
}
